package secondStage.part3.泛型.可变参数个数运用;


import java.util.Arrays;
import java.util.List;
import java.util.Set;

/**
 * @ClassName: [GenericDemo7]
 * @Description: 可变参数的运用
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-03]
 * @Version: [v1.0]
 */
/*
4.7 可变参数的使用
    Arrays工具类中有一个静态方法:
        public static <T> List<T> asList(... a):返回由指定数组支持的固定大小的列表
        返回的集合不能做增删操作，可以做修改操作
    List接口中有一个静态方法:
        public static <E> List<E> of(E... elements):返回包含任意数量元素的不可变列表
        返回的集合不能做增删改操作
    Set接口中有一个静态方法:
        public static <E> Set<E> of(E... elements)∶返回一个包含任意数量元素的不可变集合
        在给元素的时候，不能给重复的元素
        返回的集合不能做增删操作，没有修改的方法
*/

public class GenericDemo7 {
    public static void main(String[] args) {
        //public static <T> List<T> asList(... a):返回由指定数组支持的固定大小的列表
        List<String> list = Arrays.asList("hello", "world", "java");
//        list.add("javaee");//不支持请求异常UnsupportedOperationException
//        list.remove("java");//不支持请求异常UnsupportedOperationException
        list.set(1, "javaee");
        System.out.println(list);

/*        //public static <E> List<E> of(E... elements):返回包含任意数量元素的不可变列表
        List<String> list1 = List.of("hello","world","java");
        System.out.println(list1);
        //public static <E> Set<E> of(E... elements)∶返回一个包含任意数量元素的不可变集合
        Set<String> set = Set.of("hello","world","java");
        System.out.println(set);
        */
    }
}
